package com.qidianit.mes.pojo.pro;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qidianit.mes.pojo.Customer;
import com.qidianit.mes.pojo.Material;
import com.qidianit.mes.pojo.SysDictData;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * @Description:
 * @Author: YanJiRan
 * @Date: 2025/9/19 - 下午8:21
 */
@Data
public class ProductionOrder {
    /**
     * 主键ID
     */
    private Long id;

    /**
     * 工艺编号
     */
    private String productionOrderCode;

    /**
     * 工艺名称
     */
    private String productionOrderName;

    /**
     * 生产订单来源
     */
    private Long productionOrderSource;

    /**
     * 生产订单类型：1-自产，2-外协，3-外购
     */
    private Long productionOrderType;

    /**
     * 订单编码
     */
    private String orderCode;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 生产订单数量
     */
    private Long productionOrderQuantity;

    /**
     * 客户编码
     */
    private String customerCode;

    /**
     * 请求日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date requestDate;

    /**
     * 状态：1-草稿，2-已完成，3-已审核，4-已确认
     */
    private Integer status;

    /**
     * 二维码URL
     */
    private String qrCodeUrl;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime updateTime;

    /**
     * 创建人编号
     */
    private String creatorId;

    /**
     * 修改人编号
     */
    private String updaterId;

    /**
     * 删除标记(0:未删除,1:已删除)
     */
    private Integer deleteFlag;

    /**
     * 瞬时属性
     */
    private SysDictData statusDictData;

    private SysDictData typeDictData;

    private Customer customer;

    private Material material;

    private String materialName;

    private String customerName;
}